package req

import (
	"errors"
	"strings"
)

type UpdateUserInfo struct {
	NickName string `json:"nickname" `
	Email    string `json:"email" `
	Phone    string `json:"phone" `
	Desc     string `json:"desc"`
}

// 验证更新用户信息
func (u *UpdateUserInfo) Validate() error {
	if u.NickName != "" && (len(u.NickName) < 2 || len(u.NickName) > 10) {
		return errors.New("姓名长度必须在2到10之间")
	}
	if u.Email != "" && (strings.Count(u.Email, "@") != 1 || len(u.Email) > 254) {
		return errors.New("邮箱格式不正确")
	}
	if u.Phone != "" && (len(u.Phone) != 11) {
		return errors.New("手机号格式不正确")
	}
	if u.Desc != "" && (len(u.Desc) < 20 || len(u.Desc) > 100) {
		return errors.New("自我介绍长度必须在20到100之间")
	}
	return nil
}
